home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c44.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  35.3 KB  |  1,242 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. int r648is_generic(T648* C){
  10. int R=0;
  11. R=X291is_generic((((T648*)C))->_run_type/*8*/);
  12. return R;
  13. }
  14. /*No:TYPE_LIKE_FEATURE.used_as_reference*/
  15. void r648c_header_pass2(T648* C){
  16. X291c_header_pass2((((T648*)C))->_run_type/*8*/);
  17. }
  18. void r648gc_define1(T648* C){
  19. X291gc_define1((((T648*)C))->_run_type/*8*/);
  20. }
  21. int r648need_c_struct(T648* C){
  22. int R=0;
  23. R=X291need_c_struct((((T648*)C))->_run_type/*8*/);
  24. return R;
  25. }
  26. int r648is_reference(T648* C){
  27. int R=0;
  28. R=X291is_reference((((T648*)C))->_run_type/*8*/);
  29. return R;
  30. }
  31. void r648gc_info_in(T648* C,T0* a1){
  32. X291gc_info_in((((T648*)C))->_run_type/*8*/,a1);
  33. }
  34. void r648error(T0* a1,T0* a2){
  35. r683add_position(a1);
  36. r683error(((T683*)(oBC364eh)),a2);
  37. }
  38. T0* r648base_class(T648* C){
  39. T0* R=NULL;
  40. T0* _bcn=NULL;
  41. _bcn=r648base_class_name(C);
  42. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  43. R=r451base_class(((T451*)_bcn));
  44. }
  45. else {
  46. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  47. r7append(((T7*)(oBC683explanation)),b1);
  48. }/*]*/
  49. r683add_type((T0*)C,((T0*)ms67_470));
  50. r683print_as_fatal_error(((T683*)(oBC364eh)));
  51. }
  52. /*FI*/return R;
  53. }
  54. void r648call_gc_sweep_in(T648* C,T0* a1){
  55. X291call_gc_sweep_in((((T648*)C))->_run_type/*8*/,a1);
  56. }
  57. void r648gc_define2(T648* C){
  58. X291gc_define2((((T648*)C))->_run_type/*8*/);
  59. }
  60. int r648need_gc_mark_function(T648* C){
  61. int R=0;
  62. R=X291need_gc_mark_function((((T648*)C))->_run_type/*8*/);
  63. return R;
  64. }
  65. /*No:TYPE_LIKE_FEATURE.fatal_error*/
  66. int r648is_any(T648* C){
  67. int R=0;
  68. R=X291is_any((((T648*)C))->_run_type/*8*/);
  69. return R;
  70. }
  71. void r648to_reference(T648* C){
  72. X291to_reference((((T648*)C))->_run_type/*8*/);
  73. }
  74. void r648c_header_pass3(T648* C){
  75. X291c_header_pass3((((T648*)C))->_run_type/*8*/);
  76. }
  77. T0* r648base_class_name(T648* C){
  78. T0* R=NULL;
  79. R=X291base_class_name((((T648*)C))->_run_type/*8*/);
  80. return R;
  81. }
  82. int r648is_expanded(T648* C){
  83. int R=0;
  84. R=X291is_expanded((((T648*)C))->_run_type/*8*/);
  85. return R;
  86. }
  87. /*No:TYPE_LIKE_FEATURE.fz_like_foo*/
  88. int r648is_basic_eiffel_expanded(T648* C){
  89. int R=0;
  90. R=X291is_basic_eiffel_expanded((((T648*)C))->_run_type/*8*/);
  91. return R;
  92. }
  93. int r648is_none(T648* C){
  94. int R=0;
  95. R=X291is_none((((T648*)C))->_run_type/*8*/);
  96. return R;
  97. }
  98. void r648to_expanded(T648* C){
  99. X291to_expanded((((T648*)C))->_run_type/*8*/);
  100. }
  101. int r648is_integer(T648* C){
  102. int R=0;
  103. R=X291is_integer((((T648*)C))->_run_type/*8*/);
  104. return R;
  105. }
  106. void r648c_header_pass4(T648* C){
  107. X291c_header_pass4((((T648*)C))->_run_type/*8*/);
  108. }
  109. void r648anchor_cycle_end(T648* C){
  110. /*IF*/if (((((T648*)C))->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[0]/*)*//*)*/))) {
  111. /*[IRF3.3clear*/((((T907*)(((T907*)(oBC646visited)))))->_upper)=(-(1));
  112. /*]*/
  113. }
  114. /*FI*/}
  115. /*No:CST_ATT_DOUBLE.arguments*/
  116. T0* r118try_to_undefine(T118* C,T0* a1,T0* a2){
  117. T0* R=NULL;
  118. X776undefine_in(a1,a2);
  119. R=r118try_to_undefine_aux(C,a1,a2);
  120. /*IF*/if ((R)!=((void*)(NULL))) {
  121. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T118*)C))->_clients/*20*/);
  122. /*]*/
  123. }
  124. else {
  125. r605fatal_undefine(((T605*)a2),a1);
  126. }
  127. /*FI*/return R;
  128. }
  129. /*No:CST_ATT_DOUBLE.is_deferred*/
  130. void r118add_into(T118* C,T0* a1){
  131. T0* _fn=NULL;
  132. int _i=0;
  133. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  134. _i=1;
  135. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  136. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  137. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  138. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  139. r683add_position(X776start_position(_fn));
  140. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  141. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  142. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  143. r7append(((T7*)(oBC683explanation)),b1);
  144. }/*]*/
  145. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  146. }
  147. else {
  148. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  149. }
  150. /*FI*/_i=(_i)+(1);
  151. }
  152. }
  153. T0* r118try_to_undefine_aux(T118* C,T0* a1,T0* a2){
  154. T0* R=NULL;
  155. r683add_position(r118start_position(C));
  156. r118error(X776start_position(a1),((T0*)ms1_308));
  157. r605fatal_undefine(((T605*)a2),a1);
  158. return R;
  159. }
  160. void r118make(T118* C,T0* a1,T0* a2,T0* a3){
  161. r118make_e_feature(C,a1,a2);
  162. C->_value_mem=a3;
  163. }
  164. /*No:CST_ATT_DOUBLE.nb_errors*/
  165. /*No:CST_ATT_DOUBLE.set_header_comment*/
  166. T0* r118start_position(T118* C){
  167. T0* R=NULL;
  168. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  169. return R;
  170. }
  171. T0* r118to_run_feature(T118* C,T0* a1,T0* a2){
  172. T0* R=NULL;
  173. T0* _rc=NULL;
  174. _rc=X291run_class(a1);
  175. R=r355at(((T355*)_rc),a2);
  176. if(NULL!=(R))switch(((T0*)R)->id) {
  177. case 808: 
  178. break;
  179. default:
  180. R=NULL;
  181. };/*IF*/if ((R)==((void*)(NULL))) {
  182. {T808*n=malloc(sizeof(*n));
  183. *n=M808;
  184. r808make(n,a1,a2,(T0*)C);
  185. R=(T0*)n;
  186. }
  187. }
  188. /*FI*/return R;
  189. }
  190. /*No:CST_ATT_DOUBLE.ensure_assertion*/
  191. /*No:CST_ATT_DOUBLE.code_require*/
  192. /*No:CST_ATT_DOUBLE.result_type*/
  193. /*No:CST_ATT_DOUBLE.em1*/
  194. /*No:CST_ATT_DOUBLE.set_clients*/
  195. /*No:CST_ATT_DOUBLE.em2*/
  196. /*No:CST_ATT_DOUBLE.value*/
  197. /*No:CST_ATT_DOUBLE.require_assertion*/
  198. /*No:CST_ATT_DOUBLE.names*/
  199. /*No:CST_ATT_DOUBLE.value_mem*/
  200. /*No:CST_ATT_DOUBLE.stupid_switch*/
  201. int r118can_hide(T118* C,T0* a1,T0* a2){
  202. int R=0;
  203. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  204. /*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  205. r683add_position(X359start_position(a1));
  206. r118error(r118start_position(C),((T0*)ms5_359));
  207. }
  208. /*FI*/}
  209. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  210. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  211. r118error(r118start_position(C),((T0*)ms6_359));
  212. }
  213. /*FI*/}
  214. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  215. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  216. /*IF*/if (!(X291is_a_in((((T118*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  217. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  218. r7append(((T7*)(oBC683explanation)),b1);
  219. }/*]*/
  220. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  221. r7append(((T7*)(oBC683explanation)),b1);
  222. }/*]*/
  223. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  224. }
  225. /*FI*/}
  226. /*FI*/}
  227. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  228. /*IF*//*AF*//*AE*/
  229. /*FI*/}
  230. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  231. return R;
  232. }
  233. /*No:CST_ATT_DOUBLE.header_comment*/
  234. int r118is_merge_with(T118* C,T0* a1,T0* a2){
  235. int R=0;
  236. /*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  237. /*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  238. r683add_position(X359start_position(a1));
  239. r118error(r118start_position(C),((T0*)ms2_359));
  240. }
  241. /*FI*/}
  242. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  243. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  244. r118error(r118start_position(C),((T0*)ms3_359));
  245. }
  246. /*FI*/}
  247. /*FI*//*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  248. /*IF*/if (!(X291is_a_in((((T118*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  249. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  250. }
  251. /*FI*/}
  252. /*FI*//*IF*//*AF*//*AE*/
  253. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  254. return R;
  255. }
  256. /*No:CST_ATT_DOUBLE.fz_dot*/
  257. /*No:CST_ATT_DOUBLE.first_name*/
  258. /*No:CST_ATT_DOUBLE.clients*/
  259. void r118collect_for(int a1){
  260. /*IF*/if ((a1)==(1001)) {
  261. /*IF*//*AF*//*AE*/
  262. /*FI*/}
  263. else {
  264. /*IF*//*AF*//*AE*/
  265. /*FI*/}
  266. /*FI*/}
  267. void r118error(T0* a1,T0* a2){
  268. r683add_position(a1);
  269. r683error(((T683*)(oBC364eh)),a2);
  270. }
  271. /*No:CST_ATT_DOUBLE.base_class*/
  272. /*No:CST_ATT_DOUBLE.base_class_name*/
  273. void r118make_e_feature(T118* C,T0* a1,T0* a2){
  274. C->_names=a1;
  275. C->_result_type=a2;
  276. }
  277. int r558id(T558* C){
  278. int R=0;
  279. R=(((T355*)((T355*)(r558run_class(C)))))->_id/*4*/;
  280. return R;
  281. }
  282. /*No:TYPE_BIT_2.nb*/
  283. /*No:TYPE_BIT_2.n*/
  284. /*No:TYPE_BIT_2.fz_bit_foo*/
  285. /*No:TYPE_BIT_2.has_creation*/
  286. /*No:TYPE_BIT_2.is_anchored*/
  287. int r558is_c_int(T558* C){
  288. int R=0;
  289. R=(1020)==(r558mapping_code(C));
  290. return R;
  291. }
  292. /*No:TYPE_BIT_2.is_array*/
  293. /*No:TYPE_BIT_2.fz_typedef*/
  294. int r558is_a(T558* C,T0* a1){
  295. int R=0;
  296. T0* _other_bit=NULL;
  297. /*IF*/if (X291is_bit(a1)) {
  298. _other_bit=a1;
  299. if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
  300. case 549: case 558: 
  301. break;
  302. default:
  303. _other_bit=NULL;
  304. };/*IF*/if (((((T558*)C))->_nb/*20*/)<=(X609nb(_other_bit))) {
  305. R=1;
  306. }
  307. else {
  308. r683add_type((T0*)C,((T0*)ms71_470));
  309. r683add_type(a1,((T0*)ms1_609));
  310. }
  311. /*FI*/}
  312. else {
  313. R=r605is_subclass_of(((T605*)(r558base_class(C))),X291base_class(a1));
  314. /*IF*/if (R) {
  315. r683add_type((T0*)C,((T0*)ms71_470));
  316. r683add_type(a1,((T0*)ms67_470));
  317. }
  318. else {
  319. r558used_as_reference(C);
  320. }
  321. /*FI*/}
  322. /*FI*/return R;
  323. }
  324. void r558c_initialize_in(T558* C,T0* a1){
  325. int _i=0;
  326. /*IF*/if ((r558mapping_code(C))==(1021)) {
  327. r7extend(((T7*)a1),'\173');
  328. _i=r558nb_unsigned(C);
  329. while (!((_i)==(0))) {
  330. r7extend(((T7*)a1),'0');
  331. _i=(_i)-(1);
  332. /*IF*/if ((_i)>(0)) {
  333. r7extend(((T7*)a1),'\54');
  334. }
  335. /*FI*/}
  336. r7extend(((T7*)a1),'\175');
  337. }
  338. else {
  339. r7extend(((T7*)a1),'0');
  340. }
  341. /*FI*/}
  342. void r558c_type_for_argument_in(T558* C,T0* a1){
  343. r7extend(((T7*)a1),'T');
  344. r2append_in(r558id(C),a1);
  345. }
  346. /*No:TYPE_BIT_2.Cchar*/
  347. void r558set_run_time_mark(T558* C){
  348. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
  349. r7append(((T7*)(oBC291tmp_string)),r2to_string((((T558*)C))->_nb/*20*/));
  350. C->_run_time_mark=r902item(oBC291tmp_string);
  351. }
  352. void r558gc_call_new_in(T558* C,T0* a1){
  353. r7append(((T7*)a1),((T0*)ms115_470));
  354. r2append_in(r558id(C),a1);
  355. r7extend(((T7*)a1),'\50');
  356. r7extend(((T7*)a1),'\51');
  357. }
  358. /*No:TYPE_BIT_2.fz_not_found*/
  359. /*No:TYPE_BIT_2.us_put_0*/
  360. /*No:TYPE_BIT_2.run_type*/
  361. /*No:TYPE_BIT_2.is_pointer*/
  362. /*No:TYPE_BIT_2.is_dummy_expanded*/
  363. /*No:TYPE_BIT_2.is_string*/
  364. int r558space_for_variable(T558* C){
  365. int R=0;
  366. R=(r558nb_unsigned(C))*(( (CHAR_BIT*sizeof(int)) )/( CHAR_BIT ));
  367. return R;
  368. }
  369. /*No:TYPE_BIT_2.is_like_feature*/
  370. /*No:TYPE_BIT_2.is_like_current*/
  371. /*No:TYPE_BIT_2.us_put_1*/
  372. void r558make(T558* C,T0* a1,T0* a2){
  373. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
  374. r7append(((T7*)(oBC291tmp_string)),(((T446*)((T446*)a2)))->_to_string/*16*/);
  375. C->_written_mark=r902item(oBC291tmp_string);
  376. C->_start_position=a1;
  377. C->_n=a2;
  378. }
  379. /*No:TYPE_BIT_2.Cint*/
  380. /*No:TYPE_BIT_2.fz_iinaiv*/
  381. void r558mapping_cast(T558* C){
  382. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  383. /*]*/
  384. r7extend(((T7*)(oBC291tmp_string)),'\50');
  385. /*[IRF3.6c_type_for_target_in*/{T558* C1=C;
  386. T0* b1=oBC291tmp_string;
  387. r558c_type_for_argument_in(C1,b1);
  388. }/*]*/
  389. r7extend(((T7*)(oBC291tmp_string)),'\51');
  390. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  391. /*]*/
  392. }
  393. /*No:TYPE_BIT_2.start_position*/
  394. /*No:TYPE_BIT_2.c_type_for_target_in*/
  395. /*No:TYPE_BIT_2.fz_gc_mark*/
  396. /*No:TYPE_BIT_2.fz_inako*/
  397. /*No:TYPE_BIT_2.gc_initialize*/
  398. /*No:TYPE_BIT_2.fz_00*/
  399. /*No:TYPE_BIT_2.is_character*/
  400. /*No:TYPE_BIT_2.is_user_expanded*/
  401. /*No:TYPE_BIT_2.written_mark*/
  402. /*No:TYPE_BIT_2.is_run_type*/
  403. T0* r558to_runnable(T558* C,T0* a1){
  404. T0* R=NULL;
  405. T0* _ic=NULL;
  406. T0* _rf8=NULL;
  407. T0* _rf1=NULL;
  408. T0* _rf=NULL;
  409. /*IF*/if (((((T558*)C))->_run_time_mark/*12*/)==((void*)(NULL))) {
  410. _rf=r446run_feature(((T446*)((((T558*)C))->_n/*16*/)),a1);
  411. /*IF*/if ((_rf)==((void*)(NULL))) {
  412. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  413. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms74_470);
  414. r683fatal_error(((T683*)(oBC364eh)),b1);
  415. }/*]*/
  416. }
  417. else {
  418. _rf1=_rf;
  419. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  420. case 808: 
  421. break;
  422. default:
  423. _rf1=NULL;
  424. };_rf8=_rf;
  425. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  426. case 892: 
  427. break;
  428. default:
  429. _rf8=NULL;
  430. };/*IF*/if ((_rf1)!=((void*)(NULL))) {
  431. _ic=X418value((((T808*)((T808*)_rf1)))->_base_feature/*44*/,1);
  432. if(NULL!=(_ic))switch(((T0*)_ic)->id) {
  433. case 342: 
  434. break;
  435. default:
  436. _ic=NULL;
  437. };/*IF*/if ((_ic)==((void*)(NULL))) {
  438. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  439. r683add_position(r808start_position(((T808*)_rf1)));
  440. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  441. r683fatal_error(((T683*)(oBC364eh)),b1);
  442. }/*]*/
  443. }
  444. /*FI*/C->_nb=(((T342*)((T342*)_ic)))->_value/*16*/;
  445. /*IF*/if (((((T558*)C))->_nb/*20*/)<(0)) {
  446. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  447. r683add_position(r808start_position(((T808*)_rf1)));
  448. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_558);
  449. r683fatal_error(((T683*)(oBC364eh)),b1);
  450. }/*]*/
  451. }
  452. /*FI*/}
  453.  else if ((_rf8)!=((void*)(NULL))) {
  454. C->_nb=r892integer_value(((T892*)_rf8),(((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  455. }
  456. else {
  457. r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
  458. r683add_position(X496start_position(_rf));
  459. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  460. r683fatal_error(((T683*)(oBC364eh)),b1);
  461. }/*]*/
  462. }
  463. /*FI*/r558set_run_time_mark(C);
  464. R=(T0*)C;
  465. r558to_runnable_1_2(C);
  466. }
  467. /*FI*/}
  468. else {
  469. {T558*n=malloc(sizeof(*n));
  470. *n=M558;
  471. r558make(n,(((T558*)C))->_start_position/*4*/,(((T558*)C))->_n/*16*/);
  472. R=(T0*)n;
  473. }
  474. R=r558to_runnable(((T558*)R),a1);
  475. }
  476. /*FI*/return R;
  477. }
  478. void r558c_type_for_external_in(T558* C,T0* a1){
  479. /*IF*//*AF*//*AE*/
  480. /*[IRF3.6c_type_for_result_in*/{T558* C1=C;
  481. T0* b1=a1;
  482. r558c_type_for_argument_in(C1,b1);
  483. }/*]*/
  484. /*FI*/}
  485. int r558is_c_char(T558* C){
  486. int R=0;
  487. R=(1019)==(r558mapping_code(C));
  488. return R;
  489. }
  490. T0* r558generic_list(T558* C){
  491. T0* R=NULL;
  492. r558fatal_error_generic_list(C);
  493. return R;
  494. }
  495. /*No:TYPE_BIT_2.is_formal_generic*/
  496. void r558demangling_in(T558* C,T0* a1){
  497. /*IF*//*AF*//*AE*/
  498. r7extend(((T7*)a1),'E');
  499. /*FI*/r7extend(((T7*)a1),'\40');
  500. r7append(((T7*)a1),(((T558*)C))->_run_time_mark/*12*/);
  501. }
  502. /*No:TYPE_BIT_2.is_real*/
  503. int r558nb_unsigned(T558* C){
  504. int R=0;
  505. int _ib=0;
  506. _ib= (CHAR_BIT*sizeof(int)) ;
  507. R=((((T558*)C))->_nb/*20*/)/(_ib);
  508. /*IF*/if ((((((T558*)C))->_nb/*20*/)%(_ib))>(0)) {
  509. R=(R)+(1);
  510. }
  511. /*FI*/return R;
  512. }
  513. /*No:TYPE_BIT_2.is_bit*/
  514. void r558fatal_error_generic_list(T558* C){
  515. r683add_type((T0*)C,((T0*)ms12_291));
  516. r683print_as_fatal_error(((T683*)(oBC364eh)));
  517. }
  518. void r558to_runnable_1_2(T558* C){
  519. T0* _rf=NULL;
  520. T0* _rc=NULL;
  521. _rc=r558run_class(C);
  522. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms105_473));
  523. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms106_473));
  524. }
  525. /*No:TYPE_BIT_2.fz_new*/
  526. /*No:TYPE_BIT_2.us_bit_n*/
  527. T0* r558smallest_ancestor(T558* C,T0* a1){
  528. T0* R=NULL;
  529. T0* _other_bit=NULL;
  530. _other_bit=a1;
  531. if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
  532. case 549: case 558: 
  533. break;
  534. default:
  535. _other_bit=NULL;
  536. };/*IF*/if (((((T558*)C))->_nb/*20*/)<(X609nb(_other_bit))) {
  537. R=(T0*)C;
  538. }
  539. else {
  540. R=a1;
  541. }
  542. /*FI*/return R;
  543. }
  544. /*No:TYPE_BIT_2.fz_unsigned*/
  545. /*No:TYPE_BIT_2.is_boolean*/
  546. /*No:TYPE_BIT_2.is_double*/
  547. T0* r558run_class(T558* C){
  548. T0* R=NULL;
  549. R=r604run_class((T0*)C);
  550. return R;
  551. }
  552. /*No:TYPE_BIT_2.run_time_mark*/
  553. void r558c_initialize(T558* C){
  554. int _i=0;
  555. /*IF*/if ((r558mapping_code(C))==(1021)) {
  556. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  557. /*]*/
  558. r7extend(((T7*)(oBC291tmp_string)),'\173');
  559. _i=r558nb_unsigned(C);
  560. while (!((_i)==(0))) {
  561. r7extend(((T7*)(oBC291tmp_string)),'0');
  562. _i=(_i)-(1);
  563. /*IF*/if ((_i)>(0)) {
  564. r7extend(((T7*)(oBC291tmp_string)),'\54');
  565. }
  566. /*FI*/}
  567. r7extend(((T7*)(oBC291tmp_string)),'\175');
  568. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  569. /*]*/
  570. }
  571. else {
  572. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  573. char b1='0';
  574. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  575. }/*]*/
  576. /*]*/
  577. }
  578. /*FI*/}
  579. void r558cast_to_ref(T558* C){
  580. X609cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  581. }
  582. void r558gc_mark_in(T558* C,T0* a1){
  583. r7append(((T7*)a1),((T0*)ms107_470));
  584. r2append_in(r558id(C),a1);
  585. }
  586. int r558is_a_in(T558* C,T0* a1,T0* a2){
  587. int R=0;
  588. T0* _ct=NULL;
  589. T0* _t2=NULL;
  590. T0* _t1=NULL;
  591. /*IF*/if (((((T558*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  592. R=1;
  593. }
  594. else {
  595. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  596. _t1=r558to_runnable(C,_ct);
  597. _t2=X291to_runnable(a1,_ct);
  598. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  599. R=1;
  600. }
  601. else {
  602. R=X291is_a(_t1,_t2);
  603. }
  604. /*FI*/}
  605. /*FI*/return R;
  606. }
  607. T0* r558look_up_for(T558* C,T0* a1,T0* a2){
  608. T0* R=NULL;
  609. R=r605look_up_for(((T605*)(r558base_class(C))),a1,a2);
  610. return R;
  611. }
  612. void r558c_header_pass1(T558* C){
  613. int _mem_id=0;
  614. int _mc=0;
  615. _mc=r558mapping_code(C);
  616. _mem_id=r558id(C);
  617. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  618. {int z1=r558mapping_code(C);
  619.  
  620. if((1019==z1)){
  621. r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
  622. r7extend(((T7*)(oBC291tmp_string)),'\40');
  623. r7append(((T7*)(oBC291tmp_string)),((T0*)ms79_470));
  624. }
  625.  else 
  626. if((1020==z1)){
  627. r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
  628. }
  629.  else {r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
  630. }}
  631. r7extend(((T7*)(oBC291tmp_string)),'\40');
  632. r7extend(((T7*)(oBC291tmp_string)),'T');
  633. r2append_in(_mem_id,oBC291tmp_string);
  634. /*IF*/if ((r558mapping_code(C))==(1021)) {
  635. r7extend(((T7*)(oBC291tmp_string)),'\133');
  636. r2append_in(r558nb_unsigned(C),oBC291tmp_string);
  637. r7extend(((T7*)(oBC291tmp_string)),'\135');
  638. }
  639. /*FI*/r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  640. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  641. /*]*/
  642. }
  643. int r558is_c_unsigned_ptr(T558* C){
  644. int R=0;
  645. R=(1021)==(r558mapping_code(C));
  646. return R;
  647. }
  648. /*No:TYPE_BIT_2.c_type_for_result_in*/
  649. /*No:TYPE_BIT_2.expanded_initializer*/
  650. /*No:TYPE_BIT_2.Cuptr*/
  651. /*No:TYPE_BIT_2.fz_void*/
  652. /*No:TYPE_BIT_2.fz_dot*/
  653. /*No:TYPE_BIT_2.is_generic*/
  654. void r558used_as_reference(T558* C){
  655. T0* _rc=NULL;
  656. T0* _type_bit_ref=NULL;
  657. /*IF*/if (r226fast_has(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/)) {
  658. }
  659. else {
  660. r226add_last(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
  661. {T963*n=malloc(sizeof(*n));
  662. *n=M963;
  663. r963make(n,(T0*)C);
  664. _type_bit_ref=(T0*)n;
  665. }
  666. r41add_last(((T41*)(oBC609mem_type_bit_ref)),_type_bit_ref);
  667. _rc=r963run_class(((T963*)_type_bit_ref));
  668. r355set_at_run_time(((T355*)_rc));
  669. }
  670. /*FI*/}
  671. /*No:TYPE_BIT_2.c_header_pass2*/
  672. /*No:TYPE_BIT_2.gc_define1*/
  673. /*No:TYPE_BIT_2.need_c_struct*/
  674. /*No:TYPE_BIT_2.is_reference*/
  675. /*No:TYPE_BIT_2.gc_info_in*/
  676. T0* r558base_class(T558* C){
  677. T0* R=NULL;
  678. T0* _bcn=NULL;
  679. _bcn=r558base_class_name();
  680. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  681. R=r451base_class(((T451*)_bcn));
  682. }
  683. else {
  684. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  685. r7append(((T7*)(oBC683explanation)),b1);
  686. }/*]*/
  687. r683add_type((T0*)C,((T0*)ms67_470));
  688. r683print_as_fatal_error(((T683*)(oBC364eh)));
  689. }
  690. /*FI*/return R;
  691. }
  692. /*No:TYPE_BIT_2.call_gc_sweep_in*/
  693. int r558mapping_code(T558* C){
  694. int R=0;
  695. /*IF*/if (((((T558*)C))->_nb/*20*/)<=( CHAR_BIT )) {
  696. R=1019;
  697. }
  698.  else if (((((T558*)C))->_nb/*20*/)<=( (CHAR_BIT*sizeof(int)) )) {
  699. R=1020;
  700. }
  701. else {
  702. R=1021;
  703. }
  704. /*FI*/return R;
  705. }
  706. /*No:TYPE_BIT_2.gc_define2*/
  707. /*No:TYPE_BIT_2.need_gc_mark_function*/
  708. /*No:TYPE_BIT_2.fatal_error*/
  709. /*No:TYPE_BIT_2.fz_char*/
  710. /*No:TYPE_BIT_2.is_any*/
  711. void r558to_reference(T558* C){
  712. T0* _type_bit_ref=NULL;
  713. int _idx=0;
  714. _idx=r226fast_index_of(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
  715. _type_bit_ref=/*(IRF4.6item*/((((T41*)((T41*)(oBC609mem_type_bit_ref))))->_storage/*4*/)[_idx]/*)*/;
  716. r963to_reference(((T963*)_type_bit_ref));
  717. }
  718. /*No:TYPE_BIT_2.c_header_pass3*/
  719. T0* r558base_class_name(void){
  720. if (fBC609base_class_name==0){
  721. T0* R=NULL;
  722. fBC609base_class_name=1;
  723. {T451*n=malloc(sizeof(*n));
  724. *n=M451;
  725. r451make(n,((T0*)ms4_473),NULL);
  726. R=(T0*)n;
  727. }
  728. oBC609base_class_name=R;}
  729. return oBC609base_class_name;}
  730. /*No:TYPE_BIT_2.is_expanded*/
  731. /*No:TYPE_BIT_2.is_basic_eiffel_expanded*/
  732. /*No:TYPE_BIT_2.is_none*/
  733. /*No:TYPE_BIT_2.to_expanded*/
  734. /*No:TYPE_BIT_2.is_integer*/
  735. /*No:TYPE_BIT_2.c_header_pass4*/
  736. /*No:CALL_INFIX_OR.arguments*/
  737. T0* r121add_comment(T121* C,T0* a1){
  738. T0* R=NULL;
  739. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  740. R=(T0*)C;
  741. }
  742. else {
  743. {T529*n=malloc(sizeof(*n));
  744. *n=M529;
  745. r529make(n,(T0*)C,a1);
  746. R=(T0*)n;
  747. }
  748. }
  749. /*FI*/return R;
  750. }
  751. int r121to_integer(T121* C){
  752. int R=0;
  753. r121error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  754. return R;
  755. }
  756. int r121is_a(T121* C,T0* a1){
  757. int R=0;
  758. R=X291is_a(X291run_type((((T121*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  759. /*IF*/if (!(R)) {
  760. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  761. r121error(X662start_position(a1),((T0*)ms4_662));
  762. }
  763. /*FI*/return R;
  764. }
  765. /*No:CALL_INFIX_OR.is_current*/
  766. void r121mapping_c_arg(T121* C,T0* a1){
  767. T0* _actual_type=NULL;
  768. _actual_type=X291run_type((((T121*)C))->_result_type/*20*/);
  769. /*IF*/if (X291is_reference(_actual_type)) {
  770. /*IF*/if (X291is_reference(a1)) {
  771. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  772. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  773. }/*]*/
  774. /*]*/
  775. }
  776. else {
  777. X291to_expanded(_actual_type);
  778. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  779. char b1='\50';
  780. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  781. }/*]*/
  782. /*]*/
  783. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  784. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  785. }/*]*/
  786. /*]*/
  787. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  788. char b1='\51';
  789. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  790. }/*]*/
  791. /*]*/
  792. }
  793. /*FI*/}
  794. else {
  795. /*IF*/if (X291is_reference(a1)) {
  796. X291to_reference(_actual_type);
  797. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  798. char b1='\50';
  799. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  800. }/*]*/
  801. /*]*/
  802. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  803. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  804. }/*]*/
  805. /*]*/
  806. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  807. char b1='\51';
  808. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  809. }/*]*/
  810. /*]*/
  811. }
  812. else {
  813. /*IF*/if (X291need_c_struct(a1)) {
  814. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  815. char b1='\46';
  816. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  817. }/*]*/
  818. /*]*/
  819. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  820. char b1='\50';
  821. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  822. }/*]*/
  823. /*]*/
  824. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  825. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  826. }/*]*/
  827. /*]*/
  828. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  829. char b1='\51';
  830. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  831. }/*]*/
  832. /*]*/
  833. }
  834. else {
  835. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  836. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  837. }/*]*/
  838. /*]*/
  839. }
  840. /*FI*/}
  841. /*FI*/}
  842. /*FI*/}
  843. /*No:CALL_INFIX_OR.static_value*/
  844. void r121make(T121* C,T0* a1,T0* a2,T0* a3){
  845. T0* _eal=NULL;
  846. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  847. r683add_position(a2);
  848. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  849. r683fatal_error(((T683*)(oBC364eh)),b1);
  850. }/*]*/
  851. }
  852. /*FI*/{T454*n=malloc(sizeof(*n));
  853. *n=M454;
  854. r454make(n,r121operator(),a2);
  855. C->_feature_name=(T0*)n;
  856. }
  857. {T431*n=malloc(sizeof(*n));
  858. *n=M431;
  859. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  860. /*]*/
  861. _eal=(T0*)n;
  862. }
  863. r121make_call_1(C,a1,(((T121*)C))->_feature_name/*28*/,_eal);
  864. }
  865. void r121mapping_c_target(T121* C,T0* a1){
  866. T0* _actual_type=NULL;
  867. int _flag=0;
  868. _flag=r324call_invariant_start(a1);
  869. _actual_type=X291run_type((((T121*)C))->_result_type/*20*/);
  870. /*IF*/if (X291is_reference(_actual_type)) {
  871. /*IF*/if (X291is_reference(a1)) {
  872. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  873. char b1='\50';
  874. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  875. }/*]*/
  876. /*]*/
  877. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  878. char b1='\50';
  879. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  880. }/*]*/
  881. /*]*/
  882. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  883. char b1='T';
  884. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  885. }/*]*/
  886. /*]*/
  887. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  888. /*]*/
  889. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  890. char b1='\52';
  891. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  892. }/*]*/
  893. /*]*/
  894. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  895. char b1='\51';
  896. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  897. }/*]*/
  898. /*]*/
  899. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  900. char b1='\50';
  901. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  902. }/*]*/
  903. /*]*/
  904. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  905. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  906. }/*]*/
  907. /*]*/
  908. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  909. char b1='\51';
  910. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  911. }/*]*/
  912. /*]*/
  913. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  914. char b1='\51';
  915. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  916. }/*]*/
  917. /*]*/
  918. }
  919. else {
  920. X291to_expanded(_actual_type);
  921. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  922. char b1='\50';
  923. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  924. }/*]*/
  925. /*]*/
  926. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  927. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  928. }/*]*/
  929. /*]*/
  930. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  931. char b1='\51';
  932. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  933. }/*]*/
  934. /*]*/
  935. }
  936. /*FI*/}
  937. else {
  938. /*IF*/if (X291is_reference(a1)) {
  939. X291to_reference(_actual_type);
  940. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  941. char b1='\50';
  942. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  943. }/*]*/
  944. /*]*/
  945. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  946. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  947. }/*]*/
  948. /*]*/
  949. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  950. char b1='\51';
  951. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  952. }/*]*/
  953. /*]*/
  954. }
  955. else {
  956. /*IF*/if (X291need_c_struct(a1)) {
  957. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  958. char b1='\46';
  959. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  960. }/*]*/
  961. /*]*/
  962. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  963. char b1='\50';
  964. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  965. }/*]*/
  966. /*]*/
  967. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  968. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  969. }/*]*/
  970. /*]*/
  971. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  972. char b1='\51';
  973. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  974. }/*]*/
  975. /*]*/
  976. }
  977. else {
  978. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* C1=C;
  979. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  980. }/*]*/
  981. /*]*/
  982. }
  983. /*FI*/}
  984. /*FI*/}
  985. /*FI*//*IF*/if (_flag) {
  986. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  987. char b1='\51';
  988. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  989. }/*]*/
  990. /*]*/
  991. }
  992. /*FI*/}
  993. /*No:CALL_INFIX_OR.nb_errors*/
  994. /*No:CALL_INFIX_OR.feature_name*/
  995. /*No:CALL_INFIX_OR.fz_iinaiv*/
  996. /*No:CALL_INFIX_OR.arg_count*/
  997. /*No:CALL_INFIX_OR.dca_inline_argument*/
  998. /*No:CALL_INFIX_OR.run_feature*/
  999. /*No:CALL_INFIX_OR.call_proc_call_c2c*/
  1000. /*No:CALL_INFIX_OR.start_position*/
  1001. /*No:CALL_INFIX_OR.target*/
  1002. /*No:CALL_INFIX_OR.compile_to_c*/
  1003. /*No:CALL_INFIX_OR.c_simple*/
  1004. T0* r121to_runnable(T121* C,T0* a1){
  1005. T0* R=NULL;
  1006. T0* _tla=NULL;
  1007. T0* _a=NULL;
  1008. /*IF*/if (((((T121*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1009. r121to_runnable_0(C,a1);
  1010. _a=X431to_runnable((((T121*)C))->_arguments/*24*/,a1);
  1011. /*IF*/if ((_a)==((void*)(NULL))) {
  1012. r121error(X662start_position(r121arg1(C)),((T0*)ms55_470));
  1013. }
  1014. else {
  1015. C->_arguments=_a;
  1016. }
  1017. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1018. X431match_with((((T121*)C))->_arguments/*24*/,(((T121*)C))->_run_feature/*16*/);
  1019. }
  1020. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1021. _tla=(((T121*)C))->_result_type/*20*/;
  1022. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1023. case 239: 
  1024. break;
  1025. default:
  1026. _tla=NULL;
  1027. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1028. C->_result_type=X291run_type(X662result_type(r121arg1(C)));
  1029. }
  1030. /*FI*/}
  1031. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1032. R=(T0*)C;
  1033. }
  1034. /*FI*/}
  1035. else {
  1036. R=r121twin(C);
  1037. /*[IRF3.3set_current_type*/((((T121*)(((T121*)R))))->_current_type)=(NULL);
  1038. /*]*/
  1039. R=r121to_runnable(((T121*)R),a1);
  1040. }
  1041. /*FI*/return R;
  1042. }
  1043. /*No:CALL_INFIX_OR.result_type*/
  1044. /*No:CALL_INFIX_OR.is_result*/
  1045. T0* r121twin(T121* C){
  1046. T0* R=NULL;
  1047. R=malloc(sizeof(*C));
  1048. *((T121*)R)=*C;
  1049. return R;
  1050. }
  1051. /*No:CALL_INFIX_OR.set_current_type*/
  1052. T0* r121operator(void){
  1053. T0* R=NULL;
  1054. R=((T0*)ms41_473);
  1055. return R;
  1056. }
  1057. int r121is_static(T121* C){
  1058. int R=0;
  1059. /*IF*/if (X291is_boolean(X662result_type((((T121*)C))->_target/*12*/))) {
  1060. /*IF*/if ((X662is_static((((T121*)C))->_target/*12*/))&&(X662is_static(r121arg1(C)))) {
  1061. R=1;
  1062. C->_static_value_mem=(X662static_value((((T121*)C))->_target/*12*/))+(X662static_value(r121arg1(C)));
  1063. /*IF*/if (((((T121*)C))->_static_value_mem/*4*/)==(2)) {
  1064. C->_static_value_mem=1;
  1065. }
  1066. /*FI*/}
  1067. /*FI*/}
  1068. /*FI*/return R;
  1069. }
  1070. /*No:CALL_INFIX_OR.fz_07*/
  1071. /*No:CALL_INFIX_OR.can_be_dropped*/
  1072. /*No:CALL_INFIX_OR.current_type*/
  1073. void r121compile_to_c_old(T121* C){
  1074. X662compile_to_c_old((((T121*)C))->_target/*12*/);
  1075. /*IF*/{/*AT*/X431compile_to_c_old((((T121*)C))->_arguments/*24*/);
  1076. }
  1077. /*FI*/}
  1078. /*No:CALL_INFIX_OR.static_value_mem*/
  1079. void r121make_call_1(T121* C,T0* a1,T0* a2,T0* a3){
  1080. C->_target=a1;
  1081. C->_feature_name=a2;
  1082. C->_arguments=a3;
  1083. }
  1084. /*No:CALL_INFIX_OR.is_manifest_string*/
  1085. /*No:CALL_INFIX_OR.is_void*/
  1086. void r121to_runnable_0(T121* C,T0* a1){
  1087. C->_current_type=a1;
  1088. r121cpc_to_runnable(C,a1);
  1089. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T121*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1090. /*IF*/if (((((T121*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1091. r683add_position(X496start_position((((T121*)C))->_run_feature/*16*/));
  1092. r121error((((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1093. }
  1094.  else if (X291is_like_current((((T121*)C))->_result_type/*20*/)) {
  1095. C->_result_type=X662result_type((((T121*)C))->_target/*12*/);
  1096. }
  1097. /*FI*/}
  1098. /*No:CALL_INFIX_OR.is_pre_computable*/
  1099. void r121cpc_to_runnable(T121* C,T0* a1){
  1100. T0* _rc=NULL;
  1101. T0* _t=NULL;
  1102. _t=X662to_runnable((((T121*)C))->_target/*12*/,a1);
  1103. /*IF*/if ((_t)==((void*)(NULL))) {
  1104. r683add_position(X662start_position((((T121*)C))->_target/*12*/));
  1105. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1106. r683fatal_error(((T683*)(oBC364eh)),b1);
  1107. }/*]*/
  1108. }
  1109. /*FI*/C->_target=_t;
  1110. _rc=X291run_class(X662result_type((((T121*)C))->_target/*12*/));
  1111. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1112. r576update((((T121*)C))->_target/*12*/,(((T121*)C))->_run_feature/*16*/);
  1113. }
  1114. int r121use_current(T121* C){
  1115. int R=0;
  1116. /*IF*/{/*AT*/R=X431use_current((((T121*)C))->_arguments/*24*/);
  1117. }
  1118. /*FI*//*IF*/if (R) {
  1119. }
  1120.  else if (X662is_current((((T121*)C))->_target/*12*/)) {
  1121. R=X496use_current((((T121*)C))->_run_feature/*16*/);
  1122. }
  1123. else {
  1124. R=X662use_current((((T121*)C))->_target/*12*/);
  1125. }
  1126. /*FI*/return R;
  1127. }
  1128. void r121finalize(T121* C){
  1129. T0* _rf=NULL;
  1130. T0* _rc=NULL;
  1131. _rf=(((T121*)C))->_run_feature/*16*/;
  1132. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1133. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  1134. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  1135. C->_run_feature=_rf;
  1136. }
  1137. /*FI*/}
  1138. void r121error(T0* a1,T0* a2){
  1139. r683add_position(a1);
  1140. r683error(((T683*)(oBC364eh)),a2);
  1141. }
  1142. /*No:CALL_INFIX_OR.isa_dca_inline_argument*/
  1143. /*No:CALL_INFIX_OR.fatal_error*/
  1144. /*No:CALL_INFIX_OR.fz_bad_argument*/
  1145. T0* r121arg1(T121* C){
  1146. T0* R=NULL;
  1147. R=X431first((((T121*)C))->_arguments/*24*/);
  1148. return R;
  1149. }
  1150. void r121afd_check(T121* C){
  1151. T0* _running=NULL;
  1152. T0* _rc=NULL;
  1153. _rc=X291run_class(X662result_type((((T121*)C))->_target/*12*/));
  1154. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1155. /*IF*/if ((_running)==((void*)(NULL))) {
  1156. r683add_position(X662start_position((((T121*)C))->_target/*12*/));
  1157. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1158. r7append(((T7*)(oBC683explanation)),b1);
  1159. }/*]*/
  1160. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1161. r7append(((T7*)(oBC683explanation)),b1);
  1162. }/*]*/
  1163. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1164. r7append(((T7*)(oBC683explanation)),b1);
  1165. }/*]*/
  1166. r683print_as_warning(((T683*)(oBC364eh)));
  1167. r355set_at_run_time(((T355*)_rc));
  1168. }
  1169.  else if ((r396count(((T396*)_running)))>(0)) {
  1170. r576update((((T121*)C))->_target/*12*/,(((T121*)C))->_run_feature/*16*/);
  1171. }
  1172. /*FI*/X662afd_check((((T121*)C))->_target/*12*/);
  1173. /*IF*/{/*AT*/X431afd_check((((T121*)C))->_arguments/*24*/);
  1174. }
  1175. /*FI*/}
  1176. /*No:CALL_INFIX_OR.us_or*/
  1177. int r590debug_check(T590* C){
  1178. int R=0;
  1179. R=((((T590*)C))->_level/*0*/)==(1);
  1180. return R;
  1181. }
  1182. /*No:RUN_CONTROL.level_check_debug*/
  1183. /*No:RUN_CONTROL.set_require_check*/
  1184. /*No:RUN_CONTROL.set_trace*/
  1185. /*No:RUN_CONTROL.set_all_check*/
  1186. int r590all_check(T590* C){
  1187. int R=0;
  1188. R=((((T590*)C))->_level/*0*/)>=(0);
  1189. return R;
  1190. }
  1191. /*No:RUN_CONTROL.set_no_check*/
  1192. /*No:RUN_CONTROL.root_class*/
  1193. /*No:RUN_CONTROL.level_ensure*/
  1194. /*No:RUN_CONTROL.level_require*/
  1195. /*No:RUN_CONTROL.make*/
  1196. /*No:RUN_CONTROL.set_root_class*/
  1197. /*No:RUN_CONTROL.cecil_path*/
  1198. /*No:RUN_CONTROL.trace*/
  1199. /*No:RUN_CONTROL.set_ensure_check*/
  1200. /*No:RUN_CONTROL.level_loop*/
  1201. /*No:RUN_CONTROL.level_check_all*/
  1202. int r590ensure_check(T590* C){
  1203. int R=0;
  1204. R=((((T590*)C))->_level/*0*/)>=(-3);
  1205. return R;
  1206. }
  1207. int r590require_check(T590* C){
  1208. int R=0;
  1209. R=((((T590*)C))->_level/*0*/)>=(-4);
  1210. return R;
  1211. }
  1212. /*No:RUN_CONTROL.level*/
  1213. /*No:RUN_CONTROL.set_boost*/
  1214. /*No:RUN_CONTROL.set_debug_check*/
  1215. /*No:RUN_CONTROL.level_no*/
  1216. /*No:RUN_CONTROL.set_invariant_check*/
  1217. int r590loop_check(T590* C){
  1218. int R=0;
  1219. R=((((T590*)C))->_level/*0*/)>=(-1);
  1220. return R;
  1221. }
  1222. /*No:RUN_CONTROL.level_invariant*/
  1223. int r590invariant_check(T590* C){
  1224. int R=0;
  1225. R=((((T590*)C))->_level/*0*/)>=(-2);
  1226. return R;
  1227. }
  1228. /*No:RUN_CONTROL.set_cecil_path*/
  1229. /*No:RUN_CONTROL.set_loop_check*/
  1230. int r590no_check(T590* C){
  1231. int R=0;
  1232. R=((((T590*)C))->_level/*0*/)>=(-5);
  1233. return R;
  1234. }
  1235. /*No:RUN_CONTROL.level_boost*/
  1236. int r590boost(T590* C){
  1237. int R=0;
  1238. R=((((T590*)C))->_level/*0*/)==(-6);
  1239. return R;
  1240. }
  1241.  
  1242.